package br.com.windroid.sigtap.seguranca.entity;

import br.com.windroid.sigtap.seguranca.enums.TipoUsuario;
import br.com.windroid.sigtap.seguranca.enums.UnidadeFederacao;

public class Usuario {

	private Long id;
	private String nome;
	private String versao;
	private String email;
	
	public static final int TAMANHO_MAXIMO_NOME_USUARIO = 30;

	public Usuario() {
		super();
	}

	public Usuario(Long id) {
		super();
		this.id = id;
	}

	public Long getId() {
		return id;
	}

	public void setId(final Long id) {
		this.id = id;
	}
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	

	public String getEmail() {
		return email;
	}

	public void setEmail(final String email) {
		this.email = email;
	}

	

	public void abreviarNome() {
		if (getNome() != null
				&& getNome().trim().length() > TAMANHO_MAXIMO_NOME_USUARIO) {
			setNome(getNome().trim().substring(0, TAMANHO_MAXIMO_NOME_USUARIO));
		}
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		Usuario other = (Usuario) obj;
		if (email == null) {
			if (other.email != null) {
				return false;
			}
		} else if (!email.equals(other.email)) {
			return false;
		}
		return true;
	}

	public String getVersao() {
		return versao;
	}

	public void setVersao(String versao) {
		this.versao = versao;
	}

}
